1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to methods and apparatuses associated with the distribution of program products for computer systems.
2. Background Information
Program products are typically distributed in a vendor centric manner as illustrated in FIG. 1. Code control system is employed to provide versioning control to source files associated with program products on the vendors' system or systems. Only the “release” version of a program product source file is converted into object or executable form for distribution to the users, and the conversion process is performed on the vendors' systems. Examples of these vendor centric code control systems include those disclosed in U.S. Pat. Nos. 4,558,413, 4,912,637, 5,357,631 and 5,495,610.
Under this conventional vendor centric approach to source control and distribution, each program product group or software vendor goes about its development, conversion and distribution with little regard to other program product groups or software vendors, except perhaps performing certain amount of system level testing with a small group of selected program products. As a result, it is not unusual for a user, upon installing a number of program products, to find that the program products are incompatible and may not operate together, or upon applying a fix to one program product, other previously functioning program products or the entire system would fail. Once finding himself/herself in such a predicament, there are few choices available to the user, and furthermore, there are limited tools available for the user to deal with the problems. Often times, the remedial action requires distribution of an entire replacement version, as opposed to merely the “broken” or “offending” parts.
Additionally, the prior art vendor centric approach to source control is also restrictive in fostering program product interoperability. For example, a vendor of a program product requiring minor extension support from another program product of a different vendor would nevertheless require support and close cooperation from the other vendor. As a further example, users of the same program product are often frustrated in their cooperation by virtue of the fact that they operate with different version levels of the vendor's program product.
These problems or disadvantages are especially undesirable in view of the opportunities to offer the ever increasing population of potential users (which are typically novice), an ever increasing array of functionally rich consumer program products for installation and use on their ever more powerful personal computer systems. Thus, an improved approach to software distribution, including a complementary code control system, is desired.